home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 3 / The 640 Meg Shareware Studio CD-ROM Volume III (Data Express)(1993).ISO / prog / texi10as.zoo / makeinfo.tex < prev    next >
Encoding:
Text File  |  1990-11-01  |  6.9 KB  |  220 lines

  1. \include texinfo.tex @c -*- texinfo -*-
  2.  
  3. @setfilename makeinfo.info
  4.  
  5. @node Top, Top, Top, (DIR)
  6. @chapter What is Makeinfo?
  7.  
  8. Makeinfo is a program for converting @dfn{texinfo} files into @dfn{info}
  9. files.  Texinfo is a documentation language which allows a printed manual
  10. and online documentation (an info file) to be produced from a single source
  11. file.
  12.  
  13. This text does not explain how to write a texinfo file.  In order to
  14. usefully use this documentation, you should be familiar with the texinfo
  15. documentation language, and you should have used an info file reader to
  16. read some info files.  A good place to start is with @code{info}, a program
  17. for reading online documentation.  Just type @code{info} to get started.
  18. Documentation on the texinfo language is available in the node Texinfo.
  19. Type @code{info texinfo} to read it.
  20.  
  21. @menu
  22. * Formatting Control::    Controlling the appearance of the output file.
  23. * Options::        Command line options.
  24. * Validation::        What makes a `valid' info file.
  25. * Node Defaulting::    How Makeinfo can fill in the node fields for you.
  26. @end menu
  27.  
  28. @node Formatting Control
  29. @section Controlling Paragraph Formats
  30.  
  31. In general, Makeinfo @dfn{fills} the paragraphs that it outputs to the info
  32. file.  Filling is the process of breaking up and connecting lines such that
  33. the output is nearly justified.  With Makeinfo, you can control:
  34.  
  35. @itemize @bullet
  36. @item
  37. The width of the paragraph (the @dfn{fill-column}).
  38. @item
  39. The amount of indentation that the first line of the paragraph gets.
  40. @end itemize
  41.  
  42.  
  43. @node Options
  44. @section Command Line Options
  45.  
  46. The following command line options are available for Makeinfo.
  47.  
  48. @table @code
  49. @item -no-validate
  50. Suppress the validation phase of Makeinfo.  Normally, after the file is
  51. processed, some consistency checks are made to ensure that cross references
  52. can be resolved, etc.  @xref{Validation}.
  53.  
  54. @item -no-warn
  55. Suppress the output of warning messages.  This does @emph{not} suppress the
  56. output of error messages, simply warnings.  You might want this if the file
  57. you are creating has texinfo examples in it, and the nodes that are
  58. referenced don't actually exist.
  59.  
  60. @item -no-split
  61. Suppress the splitting stage of Makeinfo.  In general, large output files
  62. (where the size is greater than 70k bytes) are split into smaller subfiles,
  63. each one apporximately 50k bytes.  By specifying @code{-no-split}, Makeinfo
  64. will not split up the output file.
  65.  
  66. @item -verbose
  67. Causes Makeinfo to inform you as to what it is doing.  Normally Makeinfo
  68. only output text if there are errors or warnings.
  69.  
  70. @item -version
  71. Prints outs the version number of Makeinfo.
  72.  
  73. @item -paragraph-indent @var{num}
  74. Sets the paragraph indentation to @var{num}.  The value of @var{num} is
  75. interpreted as follows:
  76.  
  77. @itemize @bullet
  78. @item
  79. A value of 0 means don't change the existing indentation at the starts of
  80. paragraphs.
  81. @item
  82. A value less than zero means indent paragraph starts to column zero by
  83. deleting the existing indentation.
  84. @item
  85. A value greater than zero is the number of spaces to leave at the front of
  86. each paragraph start.
  87. @end itemize
  88.  
  89. @item -fill-column @var{num}
  90. Specifies the maximum right-hand edge of a line.  Paragraphs that are
  91. filled will be filled to this width.  The default value for fill-column is
  92. 72.
  93.  
  94. @item -error-limit @var{num}
  95. Sets the maximum number of errors that Makeinfo will print before exiting
  96. (on the assumption that continuing would be useless).  The default number
  97. of errors that can be printed before Makeinfo gives up on processing the
  98. input file is 100.
  99.  
  100. @item -footnote-style @var{style}
  101.  
  102. Sets the footnote style to @var{style}.  @var{style} should either be `MN'
  103. for `make node', or `BN' for `bottom node'.  When the footnote style is
  104. `MN', Makeinfo makes a new node containing the footnotes found in the
  105. current node.  When the footnote style is `BN', Makeinfo places the
  106. footnote references at the bottom of the current node.
  107.  
  108. @end table
  109.  
  110. @node Validation
  111. @section What makes a valid Info file?
  112.  
  113. If you have not suppressed validation (with the @code{-no-validate}
  114. option), Makeinfo will check the validity of the final info file.  Mostly,
  115. this means ensuring that nodes you have referenced really exist.  Here is a
  116. complete list of what is checked:
  117.  
  118. @enumerate
  119. @item
  120. If a node reference such as Prev, Next or Up is a reference to a node in
  121. this file (i.e., not an external reference such as `(DIR)'), then the
  122. referenced node must exist.
  123.  
  124. @item
  125. In a given node, if the node referenced by the Prev is different than the
  126. node referenced by the Up, then the node referenced by the Prev must have a
  127. Next which references this node.
  128.  
  129. @item
  130. Every node excepting @code{Top} must have an Up field.
  131.  
  132. @item
  133. The node referenced by Up must contain a reference to this node, other than
  134. a Next reference.  Obviously, this includes menu items and followed
  135. references.
  136.  
  137. @item
  138. If the Next reference is not the same as the Next reference of the Up
  139. reference, then the node referenced by Next must have a Prev reference
  140. pointing back at this node.  This rule still allows the last node in a
  141. section to point to the first node of the next chapter.
  142.  
  143. @end enumerate
  144.  
  145. @node Node Defaulting
  146. @section Defaulting the @code{Prev}, @code{Next}, and @code{Up}
  147.  
  148. Although the definition of an info file allows a great deal of flexibility,
  149. there are some conventions that you are urged to follow.  By letting
  150. Makeinfo default the Next, Prev, and Up pointers you can follow these
  151. conventions with the minimum of effort.
  152.  
  153. A common error ocurrs when adding a new node to a menu; often the nodes
  154. which are referenced in the menu do not point to each other in the same
  155. order as they appear in the menu.
  156.  
  157. Makeinfo helps with this particular problem by defaulting Next, Prev, and
  158. Up pointers in a @code{@@node} command if you leave off these pointers in
  159. the command.
  160.  
  161. The node to receive the defaulted pointers must be followed immediately by
  162. a sectioning command, such as @code{@@chapter} or @code{@@section}, and
  163. must appear in a menu that is one sectioning level or more above the
  164. sectioning level that this node is to have.
  165.  
  166. Here is an example of using this feature.
  167.  
  168. @example
  169. @@setfilename default-nodes-example.info
  170. @@node Top
  171. @@chapter Introduction
  172. @@menu
  173. * foo::  the foo node
  174. * bar::  the bar node
  175. @@end menu
  176.  
  177. @@node foo
  178. @@section foo
  179. this is the foo node.
  180.  
  181. @@node bar
  182. @@section Bar
  183. This is the Bar node.
  184. @@bye
  185.  
  186. @end example
  187.  
  188. produces
  189.  
  190. @example
  191. Info file default-nodes-example.info, produced by Makeinfo, -*- Text -*-
  192. from input file default-nodes.texinfo.
  193.  
  194. File: default-nodes-example.info,  Node: Top
  195.  
  196. Introduction
  197. ************
  198.  
  199. * Menu:
  200.  
  201. * foo::  the foo node
  202. * bar::  the bar node
  203.  
  204. File: default-nodes-example.info,  Node: foo,  Next: bar,  Up: Top
  205.  
  206. foo
  207. ===
  208.  
  209. this is the foo node.
  210.  
  211. File: default-nodes-example.info,  Node: bar,  Prev: foo,  Up: Top
  212.  
  213. Bar
  214. ===
  215.  
  216. This is the Bar node.
  217.  
  218. @end example
  219. @bye
  220.